package com.zhangfei.product.biz.assember;

import com.zhangfei.product.biz.domain.dto.ProductInfoDTO;
import com.zhangfei.product.proto.product1.ProductServer;
import org.springframework.stereotype.Component;

/**
 * grpc和dto数据之间的转换工具，参数校验也放在这里
 */
@Component
public class ProductServerAssembler {


    /**
     * grpc  --- >   dto
     * @param request
     * @return
     */
    public String convertGrpcToDto(ProductServer.QueryProductRequest request) {
        //1.参数校验


        //2.参数转换
        String productId = request.getProductId();

        //3.返回参数
        return productId;
    }

    /**
     *  dto --- >   grpc
     * @param  productInfoDTO
     * @return
     */
    public ProductServer.ProductInfo convertTDtoTOGrpc( ProductInfoDTO productInfoDTO) {

        //1.参数转换
        ProductServer.ProductInfo productInfo = ProductServer.ProductInfo.newBuilder()
                .setProductId(productInfoDTO.getProductId())
                .setProductName(productInfoDTO.getProductName())
                .setCount(productInfoDTO.getCount())
                .setModel(productInfoDTO.getModel())
                .build();

        //2.返回参数
        return productInfo;
    }
}
